#ifndef MAP
#define MAP
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#define SIZEBLOCK 30

/* TYPE MAP */
#define REACH_POINT 0
#define KILL_EM_ALL 1


using namespace std;

class Map
{
private:
    string mapName;
    int width;
    int height;
    int typeMap;
    int monde;
    int niveau;
    string currentLevel;
    string infosMap;
    vector<vector<int> > map;
    sf::Texture texture;
    sf::Sprite sprite;
    sf::VertexArray wall;
    int nbMur;
    std::vector<sf::Vector2f > vector2f;
    bool infosMapViewed;

public:
    Map();
    ~Map();
    Map(string mapName);
    void loadMap(string mapName);
    void loadNextMap();
    int getValue(int x, int y);
    void afficher(sf::RenderWindow& render);

    int getWidth();
    int getHeight();
    string getInfosMap();
    bool getInfosMapViewed();
    void setInfosMapViewed(bool);
    string getCurrentLevel();
    string getMapName();
    int getNbMur();
    sf::Vertex* getVertex(int i);
    std::vector<sf::Vector2f >& getVertor2fWall();
};

#endif
